import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);
// 封装存储的token 引入进来  优化  有助于后期维护
import { setitem, getitem } from "@/utils/storage";
//token的key
const TOKEN_KEY = "TOUTIAO_USER";
export default new Vuex.Store({
  state: {
    // 将 Token 存储到 Vuex 容器中     响应式
    // 用户的登录状态信息（读取出来是字符串，直接通过parse进行转换为对象）
    // user: JSON.parse(window.localStorage.getItem(TOKEN_KEY))

    user: getitem(TOKEN_KEY),
  },
  mutations: {
    // 为了持久化，还需要把 Token 放到本地存储
    setuser(state, token) {
      // 为了防止刷新丢失，我们需要把数据备份到本地存储
      //localStorage只能存储字符串，所以通过stringify将user对象转换为字符串，再存储到localStorage
      state.user = token;
      // window.localStorage.setItem(TOKEN_KEY,JSON.stringify(token))

      setitem(TOKEN_KEY, token);
    },
  },
  actions: {},
  modules: {},
});
